<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="renderer" content="webkit" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
  <title>千峰教育大前端Vue教学</title>
  <!-- 引入vue -->
  <script src="https://cdn.staticfile.org/vue/3.0.5/vue.global.js"></script>
</head>

<body style="margin:100px;font-size:22px;">
  <!-- 定义一个容器 -->
  <div id="app">
    <!-- 声明模板内容 -->
    <div>请输入搜索：<input v-model="keyword" /></div>
    <div>
      <ul>
        <li v-for="(item, key) in filterList" :key="key">{{item}}</li>
      </ul>
    </div>
    <hr/>
    <div>我姓{{firstName}}，叫{{lastName}}，全名：{{fullName}}</div>
    <button @click="resetName">见到白眉鹰王</button>
  </div>
  <script>
    // 创建应用
    const app = Vue.createApp({
      // 初始化数据函数
      data() { // 返回一个对象，对象中写初始化数据
        return {
          keyword: '',
          list: ['上衣','裙子','裤子', '帽子', '手套', '护手'], // 初始化一个的数据
          firstName: '曾',
          lastName: '阿牛',
        };
      },
      computed: { // 计算属性的配置
        filterList() { // 定义一个名叫filterList的计算属性，他和普通属性一致，只是写操作会被警告
          return this.list.filter(o=>o.includes(this.keyword));
        },
        // fullName() { // 只读属性
        //   return this.firstName + this.lastName;
        // }
        fullName: {
          // getter
          get() {
            return this.firstName + this.lastName;
          },
          set(fullName) {
            // this.fullName = fullName; // 千万不能去设置本身
            this.firstName = fullName[0];
            this.lastName =  fullName.substr(1);
          },
        }
      },
      methods: {
        resetName() {
          this.fullName = '张无忌';
        }
      }
    });
    // 挂载应用
    app.mount('#app');
  </script>
</body>

</html>